package com.csnf.dao;

import com.csnf.entity.User;
import com.csnf.util.JdbcUtil;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class UserDao {

    public List<User> getAll() throws SQLException {
//        Connection conn = DriverManager.getConnection("jdbc:mysql:///tmalldemodb", "root", "root123");
//        PreparedStatement ps = conn.prepareStatement("select * from user");
        Connection conn= JdbcUtil.getConnection();
        String sql="select user_id,user_name,user_nickname from user";
        PreparedStatement ps=JdbcUtil.getPreparedStatement(conn,sql);
        ResultSet rs = ps.executeQuery();
        List<User> userList = new ArrayList<>();
        while(rs.next()){
            User user=null;
            try {
                user=JdbcUtil.invokeObject(rs, User.class);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
//            User user =new User() ;
//            user.setUser_id(rs.getInt("user_id"));
//            user.setUser_name(rs.getString("user_name"));
//            user.setUser_nickname(rs.getString("user_nickname"));
            userList.add(user);
        }
        return userList;
    }
    public List<User> getUserByNickName(String nickName) throws SQLException{
//        Connection conn = DriverManager.getConnection("jdbc:mysql:///tmalldemodb", "root", "root123");
//        PreparedStatement ps = conn.prepareStatement("select * from user where user_nickname like ?");
        Connection conn= JdbcUtil.getConnection();
        String sql="select user_id,user_name,user_nickname from user where user_nickname like concat('%',?,'%')";
        PreparedStatement ps=JdbcUtil.getPreparedStatement(conn,sql,nickName);
        ResultSet rs = ps.executeQuery();
        List<User> userList = new ArrayList<>();
        while(rs.next()){
//            User user =new User() ;
//            user.setUser_id(rs.getInt("user_id"));
//            user.setUser_name(rs.getString("user_name"));
//            user.setUser_nickname(rs.getString("user_nickname"));
            User user=null;
            try {
                user=JdbcUtil.invokeObject(rs, User.class);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
            userList.add(user);
        }
        return userList;
    }
}
